(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["chunk-e7c1c7a6"], {
    "3b8d": function (t, e, r) {
        "use strict";
        r.d(e, "a", (function () {
            return a
        }));
        var n = r("795b"), o = r.n(n);

        function i(t, e, r, n, i, a, c) {
            try {
                var s = t[a](c), u = s.value
            } catch (l) {
                return void r(l)
            }
            s.done ? e(u) : o.a.resolve(u).then(n, i)
        }

        function a(t) {
            return function () {
                var e = this, r = arguments;
                return new o.a((function (n, o) {
                    var a = t.apply(e, r);

                    function c(t) {
                        i(a, n, o, c, s, "next", t)
                    }

                    function s(t) {
                        i(a, n, o, c, s, "throw", t)
                    }

                    c(void 0)
                }))
            }
        }
    }, "6ca8": function (t, e, r) {
        !function (e, r) {
            t.exports = r()
        }(0, (function () {
            return function (t) {
                function e(n) {
                    if (r[n]) return r[n].exports;
                    var o = r[n] = {exports: {}, id: n, loaded: !1};
                    return t[n].call(o.exports, o, o.exports, e), o.loaded = !0, o.exports
                }

                var r = {};
                return e.m = t, e.c = r, e.p = "", e(0)
            }([function (t, e, r) {
                r(6), r(7), t.exports = r(8)
            }, function (t, e, r) {
                (function (e) {
                    !function (r) {
                        function n(t, e) {
                            return function () {
                                t.apply(e, arguments)
                            }
                        }

                        function o(t) {
                            if ("object" != typeof this) throw new TypeError("Promises must be constructed via new");
                            if ("function" != typeof t) throw new TypeError("not a function");
                            this._state = null, this._value = null, this._deferreds = [], l(t, n(a, this), n(c, this))
                        }

                        function i(t) {
                            var e = this;
                            return null === this._state ? void this._deferreds.push(t) : void f((function () {
                                var r = e._state ? t.onFulfilled : t.onRejected;
                                if (null !== r) {
                                    var n;
                                    try {
                                        n = r(e._value)
                                    } catch (o) {
                                        return void t.reject(o)
                                    }
                                    t.resolve(n)
                                } else (e._state ? t.resolve : t.reject)(e._value)
                            }))
                        }

                        function a(t) {
                            try {
                                if (t === this) throw new TypeError("A promise cannot be resolved with itself.");
                                if (t && ("object" == typeof t || "function" == typeof t)) {
                                    var e = t.then;
                                    if ("function" == typeof e) return void l(n(e, t), n(a, this), n(c, this))
                                }
                                this._state = !0, this._value = t, s.call(this)
                            } catch (r) {
                                c.call(this, r)
                            }
                        }

                        function c(t) {
                            this._state = !1, this._value = t, s.call(this)
                        }

                        function s() {
                            for (var t = 0, e = this._deferreds.length; e > t; t++) i.call(this, this._deferreds[t]);
                            this._deferreds = null
                        }

                        function u(t, e, r, n) {
                            this.onFulfilled = "function" == typeof t ? t : null, this.onRejected = "function" == typeof e ? e : null, this.resolve = r, this.reject = n
                        }

                        function l(t, e, r) {
                            var n = !1;
                            try {
                                t((function (t) {
                                    n || (n = !0, e(t))
                                }), (function (t) {
                                    n || (n = !0, r(t))
                                }))
                            } catch (o) {
                                if (n) return;
                                n = !0, r(o)
                            }
                        }

                        var f = "function" == typeof e && e || function (t) {
                            setTimeout(t, 1)
                        }, h = Array.isArray || function (t) {
                            return "[object Array]" === Object.prototype.toString.call(t)
                        };
                        o.prototype["catch"] = function (t) {
                            return this.then(null, t)
                        }, o.prototype.then = function (t, e) {
                            var r = this;
                            return new o((function (n, o) {
                                i.call(r, new u(t, e, n, o))
                            }))
                        }, o.all = function () {
                            var t = Array.prototype.slice.call(1 === arguments.length && h(arguments[0]) ? arguments[0] : arguments);
                            return new o((function (e, r) {
                                function n(i, a) {
                                    try {
                                        if (a && ("object" == typeof a || "function" == typeof a)) {
                                            var c = a.then;
                                            if ("function" == typeof c) return void c.call(a, (function (t) {
                                                n(i, t)
                                            }), r)
                                        }
                                        t[i] = a, 0 === --o && e(t)
                                    } catch (s) {
                                        r(s)
                                    }
                                }

                                if (0 === t.length) return e([]);
                                for (var o = t.length, i = 0; i < t.length; i++) n(i, t[i])
                            }))
                        }, o.resolve = function (t) {
                            return t && "object" == typeof t && t.constructor === o ? t : new o((function (e) {
                                e(t)
                            }))
                        }, o.reject = function (t) {
                            return new o((function (e, r) {
                                r(t)
                            }))
                        }, o.race = function (t) {
                            return new o((function (e, r) {
                                for (var n = 0, o = t.length; o > n; n++) t[n].then(e, r)
                            }))
                        }, o._setImmediateFn = function (t) {
                            f = t
                        }, o.prototype.always = function (t) {
                            var e = this.constructor;
                            return this.then((function (r) {
                                return e.resolve(t()).then((function () {
                                    return r
                                }))
                            }), (function (r) {
                                return e.resolve(t()).then((function () {
                                    throw r
                                }))
                            }))
                        }, "undefined" != typeof t && t.exports ? t.exports = o : r.Promise || (r.Promise = o)
                    }(this)
                }).call(e, r(2).setImmediate)
            }, function (t, e, r) {
                (function (t, n) {
                    function o(t, e) {
                        this._id = t, this._clearFn = e
                    }

                    var i = r(3).nextTick, a = Function.prototype.apply, c = Array.prototype.slice, s = {}, u = 0;
                    e.setTimeout = function () {
                        return new o(a.call(setTimeout, window, arguments), clearTimeout)
                    }, e.setInterval = function () {
                        return new o(a.call(setInterval, window, arguments), clearInterval)
                    }, e.clearTimeout = e.clearInterval = function (t) {
                        t.close()
                    }, o.prototype.unref = o.prototype.ref = function () {
                    }, o.prototype.close = function () {
                        this._clearFn.call(window, this._id)
                    }, e.enroll = function (t, e) {
                        clearTimeout(t._idleTimeoutId), t._idleTimeout = e
                    }, e.unenroll = function (t) {
                        clearTimeout(t._idleTimeoutId), t._idleTimeout = -1
                    }, e._unrefActive = e.active = function (t) {
                        clearTimeout(t._idleTimeoutId);
                        var e = t._idleTimeout;
                        e >= 0 && (t._idleTimeoutId = setTimeout((function () {
                            t._onTimeout && t._onTimeout()
                        }), e))
                    }, e.setImmediate = "function" == typeof t ? t : function (t) {
                        var r = u++, n = !(arguments.length < 2) && c.call(arguments, 1);
                        return s[r] = !0, i((function () {
                            s[r] && (n ? t.apply(null, n) : t.call(null), e.clearImmediate(r))
                        })), r
                    }, e.clearImmediate = "function" == typeof n ? n : function (t) {
                        delete s[t]
                    }
                }).call(e, r(2).setImmediate, r(2).clearImmediate)
            }, function (t, e) {
                function r() {
                    u = !1, a.length ? s = a.concat(s) : l = -1, s.length && n()
                }

                function n() {
                    if (!u) {
                        var t = setTimeout(r);
                        u = !0;
                        for (var e = s.length; e;) {
                            for (a = s, s = []; ++l < e;) a && a[l].run();
                            l = -1, e = s.length
                        }
                        a = null, u = !1, clearTimeout(t)
                    }
                }

                function o(t, e) {
                    this.fun = t, this.array = e
                }

                function i() {
                }

                var a, c = t.exports = {}, s = [], u = !1, l = -1;
                c.nextTick = function (t) {
                    var e = new Array(arguments.length - 1);
                    if (arguments.length > 1) for (var r = 1; r < arguments.length; r++) e[r - 1] = arguments[r];
                    s.push(new o(t, e)), 1 !== s.length || u || setTimeout(n, 0)
                }, o.prototype.run = function () {
                    this.fun.apply(null, this.array)
                }, c.title = "browser", c.browser = !0, c.env = {}, c.argv = [], c.version = "", c.versions = {}, c.on = i, c.addListener = i, c.once = i, c.off = i, c.removeListener = i, c.removeAllListeners = i, c.emit = i, c.binding = function (t) {
                    throw new Error("process.binding is not supported")
                }, c.cwd = function () {
                    return "/"
                }, c.chdir = function (t) {
                    throw new Error("process.chdir is not supported")
                }, c.umask = function () {
                    return 0
                }
            }, function (t, e) {
                function r() {
                    var t = ~navigator.userAgent.indexOf("Android") && ~navigator.vendor.indexOf("Google") && !~navigator.userAgent.indexOf("Chrome");
                    return t && navigator.userAgent.match(/AppleWebKit\/(\d+)/).pop() <= 534 || /MQQBrowser/g.test(navigator.userAgent)
                }

                var n = function () {
                    try {
                        return new Blob, !0
                    } catch (t) {
                        return !1
                    }
                }() ? window.Blob : function (t, e) {
                    var r = new (window.BlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder || window.MozBlobBuilder);
                    return t.forEach((function (t) {
                        r.append(t)
                    })), r.getBlob(e ? e.type : void 0)
                }, o = function () {
                    function t() {
                        var t = this, r = [],
                            o = Array(21).join("-") + (+new Date * (1e16 * Math.random())).toString(36),
                            i = XMLHttpRequest.prototype.send;
                        this.getParts = function () {
                            return r.toString()
                        }, this.append = function (t, e, n) {
                            r.push("--" + o + '\r\nContent-Disposition: form-data; name="' + t + '"'), e instanceof Blob ? (r.push('; filename="' + (n || "blob") + '"\r\nContent-Type: ' + e.type + "\r\n\r\n"), r.push(e)) : r.push("\r\n\r\n" + e), r.push("\r\n")
                        }, e++, XMLHttpRequest.prototype.send = function (a) {
                            var c, s, u = this;
                            a === t ? (r.push("--" + o + "--\r\n"), s = new n(r), c = new FileReader, c.onload = function () {
                                i.call(u, c.result)
                            }, c.onerror = function (t) {
                                throw t
                            }, c.readAsArrayBuffer(s), this.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + o), e--, 0 == e && (XMLHttpRequest.prototype.send = i)) : i.call(this, a)
                        }
                    }

                    var e = 0;
                    return t.prototype = Object.create(FormData.prototype), t
                }();
                t.exports = {Blob: n, FormData: r() ? o : FormData}
            }, function (t, e, r) {
                var n, o;
                (function () {
                    function r(t) {
                        return !!t.exifdata
                    }

                    function i(t, e) {
                        e = e || t.match(/^data\:([^\;]+)\;base64,/im)[1] || "", t = t.replace(/^data\:([^\;]+)\;base64,/gim, "");
                        for (var r = atob(t), n = r.length, o = new ArrayBuffer(n), i = new Uint8Array(o), a = 0; n > a; a++) i[a] = r.charCodeAt(a);
                        return o
                    }

                    function a(t, e) {
                        var r = new XMLHttpRequest;
                        r.open("GET", t, !0), r.responseType = "blob", r.onload = function (t) {
                            (200 == this.status || 0 === this.status) && e(this.response)
                        }, r.send()
                    }

                    function c(t, e) {
                        function r(r) {
                            var n = s(r), o = u(r);
                            t.exifdata = n || {}, t.iptcdata = o || {}, e && e.call(t)
                        }

                        if (t.src) if (/^data\:/i.test(t.src)) {
                            var n = i(t.src);
                            r(n)
                        } else if (/^blob\:/i.test(t.src)) {
                            var o = new FileReader;
                            o.onload = function (t) {
                                r(t.target.result)
                            }, a(t.src, (function (t) {
                                o.readAsArrayBuffer(t)
                            }))
                        } else {
                            var c = new XMLHttpRequest;
                            c.onload = function () {
                                200 == this.status || 0 === this.status ? r(c.response) : e(new Error("Could not load image")), c = null
                            }, c.open("GET", t.src, !0), c.responseType = "arraybuffer", c.send(null)
                        } else if (window.FileReader && (t instanceof window.Blob || t instanceof window.File)) {
                            o = new FileReader;
                            o.onload = function (t) {
                                p && console.log("Got file of length " + t.target.result.byteLength), r(t.target.result)
                            }, o.readAsArrayBuffer(t)
                        }
                    }

                    function s(t) {
                        var e = new DataView(t);
                        if (p && console.log("Got file of length " + t.byteLength), 255 != e.getUint8(0) || 216 != e.getUint8(1)) return p && console.log("Not a valid JPEG"), !1;
                        for (var r, n = 2, o = t.byteLength; o > n;) {
                            if (255 != e.getUint8(n)) return p && console.log("Not a valid marker at offset " + n + ", found: " + e.getUint8(n)), !1;
                            if (r = e.getUint8(n + 1), p && console.log(r), 225 == r) return p && console.log("Found 0xFFE1 marker"), g(e, n + 4, e.getUint16(n + 2) - 2);
                            n += 2 + e.getUint16(n + 2)
                        }
                    }

                    function u(t) {
                        var e = new DataView(t);
                        if (p && console.log("Got file of length " + t.byteLength), 255 != e.getUint8(0) || 216 != e.getUint8(1)) return p && console.log("Not a valid JPEG"), !1;
                        for (var r = 2, n = t.byteLength, o = function (t, e) {
                            return 56 === t.getUint8(e) && 66 === t.getUint8(e + 1) && 73 === t.getUint8(e + 2) && 77 === t.getUint8(e + 3) && 4 === t.getUint8(e + 4) && 4 === t.getUint8(e + 5)
                        }; n > r;) {
                            if (o(e, r)) {
                                var i = e.getUint8(r + 7);
                                i % 2 !== 0 && (i += 1), 0 === i && (i = 4);
                                var a = r + 8 + i, c = e.getUint16(r + 6 + i);
                                return l(t, a, c)
                            }
                            r++
                        }
                    }

                    function l(t, e, r) {
                        for (var n, o, i, a, c = new DataView(t), s = {}, u = e; e + r > u;) 28 === c.getUint8(u) && 2 === c.getUint8(u + 1) && (a = c.getUint8(u + 2), a in S && (i = c.getInt16(u + 3), i + 5, o = S[a], n = d(c, u + 5, i), s.hasOwnProperty(o) ? s[o] instanceof Array ? s[o].push(n) : s[o] = [s[o], n] : s[o] = n)), u++;
                        return s
                    }

                    function f(t, e, r, n, o) {
                        var i, a, c, s = t.getUint16(r, !o), u = {};
                        for (c = 0; s > c; c++) i = r + 12 * c + 2, a = n[t.getUint16(i, !o)], !a && p && console.log("Unknown tag: " + t.getUint16(i, !o)), u[a] = h(t, i, e, r, o);
                        return u
                    }

                    function h(t, e, r, n, o) {
                        var i, a, c, s, u, l, f = t.getUint16(e + 2, !o), h = t.getUint32(e + 4, !o),
                            g = t.getUint32(e + 8, !o) + r;
                        switch (f) {
                            case 1:
                            case 7:
                                if (1 == h) return t.getUint8(e + 8, !o);
                                for (i = h > 4 ? g : e + 8, a = [], s = 0; h > s; s++) a[s] = t.getUint8(i + s);
                                return a;
                            case 2:
                                return i = h > 4 ? g : e + 8, d(t, i, h - 1);
                            case 3:
                                if (1 == h) return t.getUint16(e + 8, !o);
                                for (i = h > 2 ? g : e + 8, a = [], s = 0; h > s; s++) a[s] = t.getUint16(i + 2 * s, !o);
                                return a;
                            case 4:
                                if (1 == h) return t.getUint32(e + 8, !o);
                                for (a = [], s = 0; h > s; s++) a[s] = t.getUint32(g + 4 * s, !o);
                                return a;
                            case 5:
                                if (1 == h) return u = t.getUint32(g, !o), l = t.getUint32(g + 4, !o), c = new Number(u / l), c.numerator = u, c.denominator = l, c;
                                for (a = [], s = 0; h > s; s++) u = t.getUint32(g + 8 * s, !o), l = t.getUint32(g + 4 + 8 * s, !o), a[s] = new Number(u / l), a[s].numerator = u, a[s].denominator = l;
                                return a;
                            case 9:
                                if (1 == h) return t.getInt32(e + 8, !o);
                                for (a = [], s = 0; h > s; s++) a[s] = t.getInt32(g + 4 * s, !o);
                                return a;
                            case 10:
                                if (1 == h) return t.getInt32(g, !o) / t.getInt32(g + 4, !o);
                                for (a = [], s = 0; h > s; s++) a[s] = t.getInt32(g + 8 * s, !o) / t.getInt32(g + 4 + 8 * s, !o);
                                return a
                        }
                    }

                    function d(t, e, r) {
                        var n, o = "";
                        for (n = e; e + r > n; n++) o += String.fromCharCode(t.getUint8(n));
                        return o
                    }

                    function g(t, e) {
                        if ("Exif" != d(t, e, 4)) return p && console.log("Not valid EXIF data! " + d(t, e, 4)), !1;
                        var r, n, o, i, a, c = e + 6;
                        if (18761 == t.getUint16(c)) r = !1; else {
                            if (19789 != t.getUint16(c)) return p && console.log("Not valid TIFF data! (no 0x4949 or 0x4D4D)"), !1;
                            r = !0
                        }
                        if (42 != t.getUint16(c + 2, !r)) return p && console.log("Not valid TIFF data! (no 0x002A)"), !1;
                        var s = t.getUint32(c + 4, !r);
                        if (8 > s) return p && console.log("Not valid TIFF data! (First offset less than 8)", t.getUint32(c + 4, !r)), !1;
                        if (n = f(t, c, c + s, v, r), n.ExifIFDPointer) for (o in i = f(t, c, c + n.ExifIFDPointer, m, r), i) {
                            switch (o) {
                                case"LightSource":
                                case"Flash":
                                case"MeteringMode":
                                case"ExposureProgram":
                                case"SensingMethod":
                                case"SceneCaptureType":
                                case"SceneType":
                                case"CustomRendered":
                                case"WhiteBalance":
                                case"GainControl":
                                case"Contrast":
                                case"Saturation":
                                case"Sharpness":
                                case"SubjectDistanceRange":
                                case"FileSource":
                                    i[o] = b[o][i[o]];
                                    break;
                                case"ExifVersion":
                                case"FlashpixVersion":
                                    i[o] = String.fromCharCode(i[o][0], i[o][1], i[o][2], i[o][3]);
                                    break;
                                case"ComponentsConfiguration":
                                    i[o] = b.Components[i[o][0]] + b.Components[i[o][1]] + b.Components[i[o][2]] + b.Components[i[o][3]]
                            }
                            n[o] = i[o]
                        }
                        if (n.GPSInfoIFDPointer) for (o in a = f(t, c, c + n.GPSInfoIFDPointer, y, r), a) {
                            switch (o) {
                                case"GPSVersionID":
                                    a[o] = a[o][0] + "." + a[o][1] + "." + a[o][2] + "." + a[o][3]
                            }
                            n[o] = a[o]
                        }
                        return n
                    }

                    var p = !1, w = function (t) {
                        return t instanceof w ? t : this instanceof w ? void (this.EXIFwrapped = t) : new w(t)
                    };
                    "undefined" != typeof t && t.exports && (e = t.exports = w), e.EXIF = w;
                    var m = w.Tags = {
                        36864: "ExifVersion",
                        40960: "FlashpixVersion",
                        40961: "ColorSpace",
                        40962: "PixelXDimension",
                        40963: "PixelYDimension",
                        37121: "ComponentsConfiguration",
                        37122: "CompressedBitsPerPixel",
                        37500: "MakerNote",
                        37510: "UserComment",
                        40964: "RelatedSoundFile",
                        36867: "DateTimeOriginal",
                        36868: "DateTimeDigitized",
                        37520: "SubsecTime",
                        37521: "SubsecTimeOriginal",
                        37522: "SubsecTimeDigitized",
                        33434: "ExposureTime",
                        33437: "FNumber",
                        34850: "ExposureProgram",
                        34852: "SpectralSensitivity",
                        34855: "ISOSpeedRatings",
                        34856: "OECF",
                        37377: "ShutterSpeedValue",
                        37378: "ApertureValue",
                        37379: "BrightnessValue",
                        37380: "ExposureBias",
                        37381: "MaxApertureValue",
                        37382: "SubjectDistance",
                        37383: "MeteringMode",
                        37384: "LightSource",
                        37385: "Flash",
                        37396: "SubjectArea",
                        37386: "FocalLength",
                        41483: "FlashEnergy",
                        41484: "SpatialFrequencyResponse",
                        41486: "FocalPlaneXResolution",
                        41487: "FocalPlaneYResolution",
                        41488: "FocalPlaneResolutionUnit",
                        41492: "SubjectLocation",
                        41493: "ExposureIndex",
                        41495: "SensingMethod",
                        41728: "FileSource",
                        41729: "SceneType",
                        41730: "CFAPattern",
                        41985: "CustomRendered",
                        41986: "ExposureMode",
                        41987: "WhiteBalance",
                        41988: "DigitalZoomRation",
                        41989: "FocalLengthIn35mmFilm",
                        41990: "SceneCaptureType",
                        41991: "GainControl",
                        41992: "Contrast",
                        41993: "Saturation",
                        41994: "Sharpness",
                        41995: "DeviceSettingDescription",
                        41996: "SubjectDistanceRange",
                        40965: "InteroperabilityIFDPointer",
                        42016: "ImageUniqueID"
                    }, v = w.TiffTags = {
                        256: "ImageWidth",
                        257: "ImageHeight",
                        34665: "ExifIFDPointer",
                        34853: "GPSInfoIFDPointer",
                        40965: "InteroperabilityIFDPointer",
                        258: "BitsPerSample",
                        259: "Compression",
                        262: "PhotometricInterpretation",
                        274: "Orientation",
                        277: "SamplesPerPixel",
                        284: "PlanarConfiguration",
                        530: "YCbCrSubSampling",
                        531: "YCbCrPositioning",
                        282: "XResolution",
                        283: "YResolution",
                        296: "ResolutionUnit",
                        273: "StripOffsets",
                        278: "RowsPerStrip",
                        279: "StripByteCounts",
                        513: "JPEGInterchangeFormat",
                        514: "JPEGInterchangeFormatLength",
                        301: "TransferFunction",
                        318: "WhitePoint",
                        319: "PrimaryChromaticities",
                        529: "YCbCrCoefficients",
                        532: "ReferenceBlackWhite",
                        306: "DateTime",
                        270: "ImageDescription",
                        271: "Make",
                        272: "Model",
                        305: "Software",
                        315: "Artist",
                        33432: "Copyright"
                    }, y = w.GPSTags = {
                        0: "GPSVersionID",
                        1: "GPSLatitudeRef",
                        2: "GPSLatitude",
                        3: "GPSLongitudeRef",
                        4: "GPSLongitude",
                        5: "GPSAltitudeRef",
                        6: "GPSAltitude",
                        7: "GPSTimeStamp",
                        8: "GPSSatellites",
                        9: "GPSStatus",
                        10: "GPSMeasureMode",
                        11: "GPSDOP",
                        12: "GPSSpeedRef",
                        13: "GPSSpeed",
                        14: "GPSTrackRef",
                        15: "GPSTrack",
                        16: "GPSImgDirectionRef",
                        17: "GPSImgDirection",
                        18: "GPSMapDatum",
                        19: "GPSDestLatitudeRef",
                        20: "GPSDestLatitude",
                        21: "GPSDestLongitudeRef",
                        22: "GPSDestLongitude",
                        23: "GPSDestBearingRef",
                        24: "GPSDestBearing",
                        25: "GPSDestDistanceRef",
                        26: "GPSDestDistance",
                        27: "GPSProcessingMethod",
                        28: "GPSAreaInformation",
                        29: "GPSDateStamp",
                        30: "GPSDifferential"
                    }, b = w.StringValues = {
                        ExposureProgram: {
                            0: "Not defined",
                            1: "Manual",
                            2: "Normal program",
                            3: "Aperture priority",
                            4: "Shutter priority",
                            5: "Creative program",
                            6: "Action program",
                            7: "Portrait mode",
                            8: "Landscape mode"
                        },
                        MeteringMode: {
                            0: "Unknown",
                            1: "Average",
                            2: "CenterWeightedAverage",
                            3: "Spot",
                            4: "MultiSpot",
                            5: "Pattern",
                            6: "Partial",
                            255: "Other"
                        },
                        LightSource: {
                            0: "Unknown",
                            1: "Daylight",
                            2: "Fluorescent",
                            3: "Tungsten (incandescent light)",
                            4: "Flash",
                            9: "Fine weather",
                            10: "Cloudy weather",
                            11: "Shade",
                            12: "Daylight fluorescent (D 5700 - 7100K)",
                            13: "Day white fluorescent (N 4600 - 5400K)",
                            14: "Cool white fluorescent (W 3900 - 4500K)",
                            15: "White fluorescent (WW 3200 - 3700K)",
                            17: "Standard light A",
                            18: "Standard light B",
                            19: "Standard light C",
                            20: "D55",
                            21: "D65",
                            22: "D75",
                            23: "D50",
                            24: "ISO studio tungsten",
                            255: "Other"
                        },
                        Flash: {
                            0: "Flash did not fire",
                            1: "Flash fired",
                            5: "Strobe return light not detected",
                            7: "Strobe return light detected",
                            9: "Flash fired, compulsory flash mode",
                            13: "Flash fired, compulsory flash mode, return light not detected",
                            15: "Flash fired, compulsory flash mode, return light detected",
                            16: "Flash did not fire, compulsory flash mode",
                            24: "Flash did not fire, auto mode",
                            25: "Flash fired, auto mode",
                            29: "Flash fired, auto mode, return light not detected",
                            31: "Flash fired, auto mode, return light detected",
                            32: "No flash function",
                            65: "Flash fired, red-eye reduction mode",
                            69: "Flash fired, red-eye reduction mode, return light not detected",
                            71: "Flash fired, red-eye reduction mode, return light detected",
                            73: "Flash fired, compulsory flash mode, red-eye reduction mode",
                            77: "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",
                            79: "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",
                            89: "Flash fired, auto mode, red-eye reduction mode",
                            93: "Flash fired, auto mode, return light not detected, red-eye reduction mode",
                            95: "Flash fired, auto mode, return light detected, red-eye reduction mode"
                        },
                        SensingMethod: {
                            1: "Not defined",
                            2: "One-chip color area sensor",
                            3: "Two-chip color area sensor",
                            4: "Three-chip color area sensor",
                            5: "Color sequential area sensor",
                            7: "Trilinear sensor",
                            8: "Color sequential linear sensor"
                        },
                        SceneCaptureType: {0: "Standard", 1: "Landscape", 2: "Portrait", 3: "Night scene"},
                        SceneType: {1: "Directly photographed"},
                        CustomRendered: {0: "Normal process", 1: "Custom process"},
                        WhiteBalance: {0: "Auto white balance", 1: "Manual white balance"},
                        GainControl: {
                            0: "None",
                            1: "Low gain up",
                            2: "High gain up",
                            3: "Low gain down",
                            4: "High gain down"
                        },
                        Contrast: {0: "Normal", 1: "Soft", 2: "Hard"},
                        Saturation: {0: "Normal", 1: "Low saturation", 2: "High saturation"},
                        Sharpness: {0: "Normal", 1: "Soft", 2: "Hard"},
                        SubjectDistanceRange: {0: "Unknown", 1: "Macro", 2: "Close view", 3: "Distant view"},
                        FileSource: {3: "DSC"},
                        Components: {0: "", 1: "Y", 2: "Cb", 3: "Cr", 4: "R", 5: "G", 6: "B"}
                    }, S = {
                        120: "caption",
                        110: "credit",
                        25: "keywords",
                        55: "dateCreated",
                        80: "byline",
                        85: "bylineTitle",
                        122: "captionWriter",
                        105: "headline",
                        116: "copyright",
                        15: "category"
                    };
                    w.getData = function (t, e) {
                        return !((t instanceof Image || t instanceof HTMLImageElement) && !t.complete) && (r(t) ? e && e.call(t) : c(t, e), !0)
                    }, w.getTag = function (t, e) {
                        return r(t) ? t.exifdata[e] : void 0
                    }, w.getAllTags = function (t) {
                        if (!r(t)) return {};
                        var e, n = t.exifdata, o = {};
                        for (e in n) n.hasOwnProperty(e) && (o[e] = n[e]);
                        return o
                    }, w.pretty = function (t) {
                        if (!r(t)) return "";
                        var e, n = t.exifdata, o = "";
                        for (e in n) n.hasOwnProperty(e) && (o += "object" == typeof n[e] ? n[e] instanceof Number ? e + " : " + n[e] + " [" + n[e].numerator + "/" + n[e].denominator + "]\r\n" : e + " : [" + n[e].length + " values]\r\n" : e + " : " + n[e] + "\r\n");
                        return o
                    }, w.readFromBinaryFile = function (t) {
                        return s(t)
                    }, n = [], o = function () {
                        return w
                    }.apply(e, n), void 0 === o || (t.exports = o)
                }).call(this)
            }, function (t, e, r) {
                var n, o;
                !function () {
                    function r(t) {
                        var e = t.naturalWidth, r = t.naturalHeight;
                        if (e * r > 1048576) {
                            var n = document.createElement("canvas");
                            n.width = n.height = 1;
                            var o = n.getContext("2d");
                            return o.drawImage(t, 1 - e, 0), 0 === o.getImageData(0, 0, 1, 1).data[3]
                        }
                        return !1
                    }

                    function i(t, e, r) {
                        var n = document.createElement("canvas");
                        n.width = 1, n.height = r;
                        var o = n.getContext("2d");
                        o.drawImage(t, 0, 0);
                        for (var i = o.getImageData(0, 0, 1, r).data, a = 0, c = r, s = r; s > a;) {
                            var u = i[4 * (s - 1) + 3];
                            0 === u ? c = s : a = s, s = c + a >> 1
                        }
                        var l = s / r;
                        return 0 === l ? 1 : l
                    }

                    function a(t, e, r) {
                        var n = document.createElement("canvas");
                        return c(t, n, e, r), n.toDataURL("image/jpeg", e.quality || .8)
                    }

                    function c(t, e, n, o) {
                        var a = t.naturalWidth, c = t.naturalHeight, u = n.width, l = n.height, f = e.getContext("2d");
                        f.save(), s(e, f, u, l, n.orientation);
                        var h = r(t);
                        h && (a /= 2, c /= 2);
                        var d = 1024, g = document.createElement("canvas");
                        g.width = g.height = d;
                        for (var p = g.getContext("2d"), w = o ? i(t, a, c) : 1, m = Math.ceil(d * u / a), v = Math.ceil(d * l / c / w), y = 0, b = 0; c > y;) {
                            for (var S = 0, x = 0; a > S;) p.clearRect(0, 0, d, d), p.drawImage(t, -S, -y), f.drawImage(g, 0, 0, d, d, x, b, m, v), S += d, x += m;
                            y += d, b += v
                        }
                        f.restore(), g = p = null
                    }

                    function s(t, e, r, n, o) {
                        switch (o) {
                            case 5:
                            case 6:
                            case 7:
                            case 8:
                                t.width = n, t.height = r;
                                break;
                            default:
                                t.width = r, t.height = n
                        }
                        switch (o) {
                            case 2:
                                e.translate(r, 0), e.scale(-1, 1);
                                break;
                            case 3:
                                e.translate(r, n), e.rotate(Math.PI);
                                break;
                            case 4:
                                e.translate(0, n), e.scale(1, -1);
                                break;
                            case 5:
                                e.rotate(.5 * Math.PI), e.scale(1, -1);
                                break;
                            case 6:
                                e.rotate(.5 * Math.PI), e.translate(0, -n);
                                break;
                            case 7:
                                e.rotate(.5 * Math.PI), e.translate(r, -n), e.scale(-1, 1);
                                break;
                            case 8:
                                e.rotate(-.5 * Math.PI), e.translate(-r, 0)
                        }
                    }

                    function u(t) {
                        if (window.Blob && t instanceof Blob) {
                            var e = new Image,
                                r = window.URL && window.URL.createObjectURL ? window.URL : window.webkitURL && window.webkitURL.createObjectURL ? window.webkitURL : null;
                            if (!r) throw Error("No createObjectURL function found to create blob url");
                            e.src = r.createObjectURL(t), this.blob = t, t = e
                        }
                        if (!t.naturalWidth && !t.naturalHeight) {
                            var n = this;
                            t.onload = function () {
                                var t = n.imageLoadListeners;
                                if (t) {
                                    n.imageLoadListeners = null;
                                    for (var e = 0, r = t.length; r > e; e++) t[e]()
                                }
                            }, this.imageLoadListeners = []
                        }
                        this.srcImage = t
                    }

                    u.prototype.render = function (t, e, r) {
                        if (this.imageLoadListeners) {
                            var n = this;
                            this.imageLoadListeners.push((function () {
                                n.render(t, e, r)
                            }))
                        } else {
                            e = e || {};
                            var o = this.srcImage, i = o.src, s = i.length, u = o.naturalWidth, l = o.naturalHeight,
                                f = e.width, h = e.height, d = e.maxWidth, g = e.maxHeight,
                                p = this.blob && "image/jpeg" === this.blob.type || 0 === i.indexOf("data:image/jpeg") || i.indexOf(".jpg") === s - 4 || i.indexOf(".jpeg") === s - 5;
                            f && !h ? h = l * f / u << 0 : h && !f ? f = u * h / l << 0 : (f = u, h = l), d && f > d && (f = d, h = l * f / u << 0), g && h > g && (h = g, f = u * h / l << 0);
                            var w = {width: f, height: h};
                            for (var m in e) w[m] = e[m];
                            var v = t.tagName.toLowerCase();
                            "img" === v ? t.src = a(this.srcImage, w, p) : "canvas" === v && c(this.srcImage, t, w, p), "function" == typeof this.onrender && this.onrender(t), r && r()
                        }
                    }, n = [], o = function () {
                        return u
                    }.apply(e, n), void 0 === o || (t.exports = o)
                }()
            }, function (t, e) {
                function r(t) {
                    function e(t) {
                        for (var e = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99], r = 0; 64 > r; r++) {
                            var n = I((e[r] * t + 50) / 100);
                            1 > n ? n = 1 : n > 255 && (n = 255), L[N[r]] = n
                        }
                        for (var o = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99], i = 0; 64 > i; i++) {
                            var a = I((o[i] * t + 50) / 100);
                            1 > a ? a = 1 : a > 255 && (a = 255), F[N[i]] = a
                        }
                        for (var c = [1, 1.387039845, 1.306562965, 1.175875602, 1, .785694958, .5411961, .275899379], s = 0, u = 0; 8 > u; u++) for (var l = 0; 8 > l; l++) D[s] = 1 / (L[N[s]] * c[u] * c[l] * 8), T[s] = 1 / (F[N[s]] * c[u] * c[l] * 8), s++
                    }

                    function r(t, e) {
                        for (var r = 0, n = 0, o = new Array, i = 1; 16 >= i; i++) {
                            for (var a = 1; a <= t[i]; a++) o[e[n]] = [], o[e[n]][0] = r, o[e[n]][1] = i, n++, r++;
                            r *= 2
                        }
                        return o
                    }

                    function n() {
                        y = r(W, H), b = r(V, X), S = r(z, q), x = r(Y, Q)
                    }

                    function o() {
                        for (var t = 1, e = 2, r = 1; 15 >= r; r++) {
                            for (var n = t; e > n; n++) C[32767 + n] = r, U[32767 + n] = [], U[32767 + n][1] = r, U[32767 + n][0] = n;
                            for (var o = -(e - 1); -t >= o; o++) C[32767 + o] = r, U[32767 + o] = [], U[32767 + o][1] = r, U[32767 + o][0] = e - 1 + o;
                            t <<= 1, e <<= 1
                        }
                    }

                    function i() {
                        for (var t = 0; 256 > t; t++) B[t] = 19595 * t, B[t + 256 >> 0] = 38470 * t, B[t + 512 >> 0] = 7471 * t + 32768, B[t + 768 >> 0] = -11059 * t, B[t + 1024 >> 0] = -21709 * t, B[t + 1280 >> 0] = 32768 * t + 8421375, B[t + 1536 >> 0] = -27439 * t, B[t + 1792 >> 0] = -5329 * t
                    }

                    function a(t) {
                        for (var e = t[0], r = t[1] - 1; r >= 0;) e & 1 << r && (G |= 1 << O), r--, O--, 0 > O && (255 == G ? (c(255), c(0)) : c(G), O = 7, G = 0)
                    }

                    function c(t) {
                        E.push(k[t])
                    }

                    function s(t) {
                        c(t >> 8 & 255), c(255 & t)
                    }

                    function u(t, e) {
                        var r, n, o, i, a, c, s, u, l, f = 0;
                        const h = 8, d = 64;
                        for (l = 0; h > l; ++l) {
                            r = t[f], n = t[f + 1], o = t[f + 2], i = t[f + 3], a = t[f + 4], c = t[f + 5], s = t[f + 6], u = t[f + 7];
                            var g = r + u, p = r - u, w = n + s, m = n - s, v = o + c, y = o - c, b = i + a, S = i - a,
                                x = g + b, P = g - b, I = w + v, L = w - v;
                            t[f] = x + I, t[f + 4] = x - I;
                            var F = .707106781 * (L + P);
                            t[f + 2] = P + F, t[f + 6] = P - F, x = S + y, I = y + m, L = m + p;
                            var D = .382683433 * (x - L), T = .5411961 * x + D, U = 1.306562965 * L + D,
                                C = .707106781 * I, R = p + C, E = p - C;
                            t[f + 5] = E + T, t[f + 3] = E - T, t[f + 1] = R + U, t[f + 7] = R - U, f += 8
                        }
                        for (f = 0, l = 0; h > l; ++l) {
                            r = t[f], n = t[f + 8], o = t[f + 16], i = t[f + 24], a = t[f + 32], c = t[f + 40], s = t[f + 48], u = t[f + 56];
                            var G = r + u, O = r - u, M = n + s, _ = n - s, j = o + c, k = o - c, B = i + a, N = i - a,
                                W = G + B, H = G - B, z = M + j, q = M - j;
                            t[f] = W + z, t[f + 32] = W - z;
                            var V = .707106781 * (q + H);
                            t[f + 16] = H + V, t[f + 48] = H - V, W = N + k, z = k + _, q = _ + O;
                            var X = .382683433 * (W - q), Y = .5411961 * W + X, Q = 1.306562965 * q + X,
                                J = .707106781 * z, K = O + J, Z = O - J;
                            t[f + 40] = Z + Y, t[f + 24] = Z - Y, t[f + 8] = K + Q, t[f + 56] = K - Q, f++
                        }
                        var $;
                        for (l = 0; d > l; ++l) $ = t[l] * e[l], A[l] = $ > 0 ? $ + .5 | 0 : $ - .5 | 0;
                        return A
                    }

                    function l() {
                        s(65504), s(16), c(74), c(70), c(73), c(70), c(0), c(1), c(1), c(0), s(1), s(1), c(0), c(0)
                    }

                    function f(t, e) {
                        s(65472), s(17), c(8), s(e), s(t), c(3), c(1), c(17), c(0), c(2), c(17), c(1), c(3), c(17), c(1)
                    }

                    function h() {
                        s(65499), s(132), c(0);
                        for (var t = 0; 64 > t; t++) c(L[t]);
                        c(1);
                        for (var e = 0; 64 > e; e++) c(F[e])
                    }

                    function d() {
                        s(65476), s(418), c(0);
                        for (var t = 0; 16 > t; t++) c(W[t + 1]);
                        for (var e = 0; 11 >= e; e++) c(H[e]);
                        c(16);
                        for (var r = 0; 16 > r; r++) c(z[r + 1]);
                        for (var n = 0; 161 >= n; n++) c(q[n]);
                        c(1);
                        for (var o = 0; 16 > o; o++) c(V[o + 1]);
                        for (var i = 0; 11 >= i; i++) c(X[i]);
                        c(17);
                        for (var a = 0; 16 > a; a++) c(Y[a + 1]);
                        for (var u = 0; 161 >= u; u++) c(Q[u])
                    }

                    function g() {
                        s(65498), s(12), c(3), c(1), c(0), c(2), c(17), c(3), c(17), c(0), c(63), c(0)
                    }

                    function p(t, e, r, n, o) {
                        var i, c = o[0], s = o[240];
                        const l = 16, f = 63, h = 64;
                        for (var d = u(t, e), g = 0; h > g; ++g) R[N[g]] = d[g];
                        var p = R[0] - r;
                        r = R[0], 0 == p ? a(n[0]) : (i = 32767 + p, a(n[C[i]]), a(U[i]));
                        for (var w = 63; w > 0 && 0 == R[w]; w--) ;
                        if (0 == w) return a(c), r;
                        for (var m, v = 1; w >= v;) {
                            for (var y = v; 0 == R[v] && w >= v; ++v) ;
                            var b = v - y;
                            if (b >= l) {
                                m = b >> 4;
                                for (var S = 1; m >= S; ++S) a(s);
                                b &= 15
                            }
                            i = 32767 + R[v], a(o[(b << 4) + C[i]]), a(U[i]), v++
                        }
                        return w != f && a(c), r
                    }

                    function w() {
                        for (var t = String.fromCharCode, e = 0; 256 > e; e++) k[e] = t(e)
                    }

                    function m(t) {
                        if (0 >= t && (t = 1), t > 100 && (t = 100), P != t) {
                            var r = 0;
                            r = 50 > t ? Math.floor(5e3 / t) : Math.floor(200 - 2 * t), e(r), P = t
                        }
                    }

                    function v() {
                        (new Date).getTime();
                        t || (t = 50), w(), n(), o(), i(), m(t), (new Date).getTime()
                    }

                    var y, b, S, x, P, I = (Math.round, Math.floor), L = new Array(64), F = new Array(64),
                        D = new Array(64), T = new Array(64), U = new Array(65535), C = new Array(65535),
                        A = new Array(64), R = new Array(64), E = [], G = 0, O = 7, M = new Array(64),
                        _ = new Array(64), j = new Array(64), k = new Array(256), B = new Array(2048),
                        N = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63],
                        W = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
                        H = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
                        z = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125],
                        q = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250],
                        V = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
                        X = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
                        Y = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119],
                        Q = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
                    this.encode = function (t, e, r) {
                        (new Date).getTime();
                        e && m(e), E = new Array, G = 0, O = 7, s(65496), l(), h(), f(t.width, t.height), d(), g();
                        var n = 0, o = 0, i = 0;
                        G = 0, O = 7, this.encode.displayName = "_encode_";
                        for (var c, u, w, v, P, I, L, F, U, C = t.data, A = t.width, R = t.height, k = 4 * A, N = 0; R > N;) {
                            for (c = 0; k > c;) {
                                for (P = k * N + c, I = P, L = -1, F = 0, U = 0; 64 > U; U++) F = U >> 3, L = 4 * (7 & U), I = P + F * k + L, N + F >= R && (I -= k * (N + 1 + F - R)), c + L >= k && (I -= c + L - k + 4), u = C[I++], w = C[I++], v = C[I++], M[U] = (B[u] + B[w + 256 >> 0] + B[v + 512 >> 0] >> 16) - 128, _[U] = (B[u + 768 >> 0] + B[w + 1024 >> 0] + B[v + 1280 >> 0] >> 16) - 128, j[U] = (B[u + 1280 >> 0] + B[w + 1536 >> 0] + B[v + 1792 >> 0] >> 16) - 128;
                                n = p(M, D, n, y, S), o = p(_, T, o, b, x), i = p(j, T, i, b, x), c += 32
                            }
                            N += 8
                        }
                        if (O >= 0) {
                            var W = [];
                            W[1] = O + 1, W[0] = (1 << O + 1) - 1, a(W)
                        }
                        if (s(65497), r) {
                            for (var H = E.length, z = new Uint8Array(H), q = 0; H > q; q++) z[q] = E[q].charCodeAt();
                            return E = [], (new Date).getTime(), z
                        }
                        var V = "data:image/jpeg;base64," + btoa(E.join(""));
                        return E = [], (new Date).getTime(), V
                    }, v()
                }

                t.exports = r
            }, function (t, e, r) {
                function n(t, e) {
                    var r = this;
                    if (!t) throw new Error("没有收到图片，可能的解决方案：https://github.com/think2011/localResizeIMG/issues/7");
                    for (var n in e = e || {}, r.defaults = {
                        width: null,
                        height: null,
                        fieldName: "file",
                        quality: .7
                    }, r.file = t, e) e.hasOwnProperty(n) && (r.defaults[n] = e[n]);
                    return this.init()
                }

                function o(t) {
                    var e = null;
                    return e = t ? [].filter.call(document.scripts, (function (e) {
                        return -1 !== e.src.indexOf(t)
                    }))[0] : document.scripts[document.scripts.length - 1], e ? e.src.substr(0, e.src.lastIndexOf("/")) : null
                }

                function i(t) {
                    var e;
                    e = t.split(",")[0].indexOf("base64") >= 0 ? atob(t.split(",")[1]) : unescape(t.split(",")[1]);
                    for (var r = t.split(",")[0].split(":")[1].split(";")[0], n = new Uint8Array(e.length), o = 0; o < e.length; o++) n[o] = e.charCodeAt(o);
                    return new c.Blob([n.buffer], {type: r})
                }

                r.p = o("lrz") + "/", window.URL = window.URL || window.webkitURL;
                var a = r(1), c = r(4), s = r(5), u = function (t) {
                    var e = /OS (\d)_.* like Mac OS X/g.exec(t),
                        r = /Android (\d.*?);/g.exec(t) || /Android\/(\d.*?) /g.exec(t);
                    return {
                        oldIOS: !!e && +e.pop() < 8,
                        oldAndroid: !!r && +r.pop().substr(0, 3) < 4.5,
                        iOS: /\(i[^;]+;( U;)? CPU.+Mac OS X/.test(t),
                        android: /Android/g.test(t),
                        mQQBrowser: /MQQBrowser/g.test(t)
                    }
                }(navigator.userAgent);
                n.prototype.init = function () {
                    var t = this, e = t.file, r = "string" == typeof e, n = /^data:/.test(e), o = new Image,
                        s = document.createElement("canvas"), u = r ? e : URL.createObjectURL(e);
                    if (t.img = o, t.blob = u, t.canvas = s, t.fileName = r ? n ? "base64.jpg" : e.split("/").pop() : e.name, !document.createElement("canvas").getContext) throw new Error("浏览器不支持canvas");
                    return new a((function (r, a) {
                        o.onerror = function () {
                            var t = new Error("加载图片文件失败");
                            throw a(t), t
                        }, o.onload = function () {
                            t._getBase64().then((function (t) {
                                if (t.length < 10) {
                                    var e = new Error("生成base64失败");
                                    throw a(e), e
                                }
                                return t
                            })).then((function (n) {
                                var o = null;
                                for (var a in "object" == typeof t.file && n.length > t.file.size ? (o = new FormData, e = t.file) : (o = new c.FormData, e = i(n)), o.append(t.defaults.fieldName, e, t.fileName.replace(/\..+/g, ".jpg")), r({
                                    formData: o,
                                    fileLen: +e.size,
                                    base64: n,
                                    base64Len: n.length,
                                    origin: t.file,
                                    file: e
                                }), t) t.hasOwnProperty(a) && (t[a] = null);
                                URL.revokeObjectURL(t.blob)
                            }))
                        }, !n && (o.crossOrigin = "*"), o.src = u
                    }))
                }, n.prototype._getBase64 = function () {
                    var t = this, e = t.img, r = t.file, n = t.canvas;
                    return new a((function (o) {
                        try {
                            s.getData("object" == typeof r ? r : e, (function () {
                                t.orientation = s.getTag(this, "Orientation"), t.resize = t._getResize(), t.ctx = n.getContext("2d"), n.width = t.resize.width, n.height = t.resize.height, t.ctx.fillStyle = "#fff", t.ctx.fillRect(0, 0, n.width, n.height), u.oldIOS ? t._createBase64ForOldIOS().then(o) : t._createBase64().then(o)
                            }))
                        } catch (i) {
                            throw new Error(i)
                        }
                    }))
                }, n.prototype._createBase64ForOldIOS = function () {
                    var t = this, e = t.img, n = t.canvas, o = t.defaults, i = t.orientation;
                    return new a((function (t) {
                        !function () {
                            var a = [r(6)];
                            (function (r) {
                                var a = new r(e);
                                "5678".indexOf(i) > -1 ? a.render(n, {
                                    width: n.height,
                                    height: n.width,
                                    orientation: i
                                }) : a.render(n, {
                                    width: n.width,
                                    height: n.height,
                                    orientation: i
                                }), t(n.toDataURL("image/jpeg", o.quality))
                            }).apply(null, a)
                        }()
                    }))
                }, n.prototype._createBase64 = function () {
                    var t = this, e = t.resize, n = t.img, o = t.canvas, i = t.ctx, c = t.defaults, s = t.orientation;
                    switch (s) {
                        case 3:
                            i.rotate(180 * Math.PI / 180), i.drawImage(n, -e.width, -e.height, e.width, e.height);
                            break;
                        case 6:
                            i.rotate(90 * Math.PI / 180), i.drawImage(n, 0, -e.width, e.height, e.width);
                            break;
                        case 8:
                            i.rotate(270 * Math.PI / 180), i.drawImage(n, -e.height, 0, e.height, e.width);
                            break;
                        case 2:
                            i.translate(e.width, 0), i.scale(-1, 1), i.drawImage(n, 0, 0, e.width, e.height);
                            break;
                        case 4:
                            i.translate(e.width, 0), i.scale(-1, 1), i.rotate(180 * Math.PI / 180), i.drawImage(n, -e.width, -e.height, e.width, e.height);
                            break;
                        case 5:
                            i.translate(e.width, 0), i.scale(-1, 1), i.rotate(90 * Math.PI / 180), i.drawImage(n, 0, -e.width, e.height, e.width);
                            break;
                        case 7:
                            i.translate(e.width, 0), i.scale(-1, 1), i.rotate(270 * Math.PI / 180), i.drawImage(n, -e.height, 0, e.height, e.width);
                            break;
                        default:
                            i.drawImage(n, 0, 0, e.width, e.height)
                    }
                    return new a((function (t) {
                        u.oldAndroid || u.mQQBrowser || !navigator.userAgent ? function () {
                            var e = [r(7)];
                            (function (e) {
                                var r = new e, n = i.getImageData(0, 0, o.width, o.height);
                                t(r.encode(n, 100 * c.quality))
                            }).apply(null, e)
                        }() : t(o.toDataURL("image/jpeg", c.quality))
                    }))
                }, n.prototype._getResize = function () {
                    var t = this, e = t.img, r = t.defaults, n = r.width, o = r.height, i = t.orientation,
                        a = {width: e.width, height: e.height};
                    if ("5678".indexOf(i) > -1 && (a.width = e.height, a.height = e.width), a.width < n || a.height < o) return a;
                    var c = a.width / a.height;
                    for (n && o ? c >= n / o ? a.width > n && (a.width = n, a.height = Math.ceil(n / c)) : a.height > o && (a.height = o, a.width = Math.ceil(o * c)) : n ? n < a.width && (a.width = n, a.height = Math.ceil(n / c)) : o && o < a.height && (a.width = Math.ceil(o * c), a.height = o); a.width >= 3264 || a.height >= 2448;) a.width *= .8, a.height *= .8;
                    return a
                }, window.lrz = function (t, e) {
                    return new n(t, e)
                }, window.lrz.version = "4.9.40", t.exports = window.lrz
            }])
        }))
    }, "96cf": function (t, e) {
        !function (e) {
            "use strict";
            var r, n = Object.prototype, o = n.hasOwnProperty, i = "function" === typeof Symbol ? Symbol : {},
                a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator",
                s = i.toStringTag || "@@toStringTag", u = "object" === typeof t, l = e.regeneratorRuntime;
            if (l) u && (t.exports = l); else {
                l = e.regeneratorRuntime = u ? t.exports : {}, l.wrap = b;
                var f = "suspendedStart", h = "suspendedYield", d = "executing", g = "completed", p = {}, w = {};
                w[a] = function () {
                    return this
                };
                var m = Object.getPrototypeOf, v = m && m(m(R([])));
                v && v !== n && o.call(v, a) && (w = v);
                var y = I.prototype = x.prototype = Object.create(w);
                P.prototype = y.constructor = I, I.constructor = P, I[s] = P.displayName = "GeneratorFunction", l.isGeneratorFunction = function (t) {
                    var e = "function" === typeof t && t.constructor;
                    return !!e && (e === P || "GeneratorFunction" === (e.displayName || e.name))
                }, l.mark = function (t) {
                    return Object.setPrototypeOf ? Object.setPrototypeOf(t, I) : (t.__proto__ = I, s in t || (t[s] = "GeneratorFunction")), t.prototype = Object.create(y), t
                }, l.awrap = function (t) {
                    return {__await: t}
                }, L(F.prototype), F.prototype[c] = function () {
                    return this
                }, l.AsyncIterator = F, l.async = function (t, e, r, n) {
                    var o = new F(b(t, e, r, n));
                    return l.isGeneratorFunction(e) ? o : o.next().then((function (t) {
                        return t.done ? t.value : o.next()
                    }))
                }, L(y), y[s] = "Generator", y[a] = function () {
                    return this
                }, y.toString = function () {
                    return "[object Generator]"
                }, l.keys = function (t) {
                    var e = [];
                    for (var r in t) e.push(r);
                    return e.reverse(), function r() {
                        while (e.length) {
                            var n = e.pop();
                            if (n in t) return r.value = n, r.done = !1, r
                        }
                        return r.done = !0, r
                    }
                }, l.values = R, A.prototype = {
                    constructor: A, reset: function (t) {
                        if (this.prev = 0, this.next = 0, this.sent = this._sent = r, this.done = !1, this.delegate = null, this.method = "next", this.arg = r, this.tryEntries.forEach(C), !t) for (var e in this) "t" === e.charAt(0) && o.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = r)
                    }, stop: function () {
                        this.done = !0;
                        var t = this.tryEntries[0], e = t.completion;
                        if ("throw" === e.type) throw e.arg;
                        return this.rval
                    }, dispatchException: function (t) {
                        if (this.done) throw t;
                        var e = this;

                        function n(n, o) {
                            return c.type = "throw", c.arg = t, e.next = n, o && (e.method = "next", e.arg = r), !!o
                        }

                        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
                            var a = this.tryEntries[i], c = a.completion;
                            if ("root" === a.tryLoc) return n("end");
                            if (a.tryLoc <= this.prev) {
                                var s = o.call(a, "catchLoc"), u = o.call(a, "finallyLoc");
                                if (s && u) {
                                    if (this.prev < a.catchLoc) return n(a.catchLoc, !0);
                                    if (this.prev < a.finallyLoc) return n(a.finallyLoc)
                                } else if (s) {
                                    if (this.prev < a.catchLoc) return n(a.catchLoc, !0)
                                } else {
                                    if (!u) throw new Error("try statement without catch or finally");
                                    if (this.prev < a.finallyLoc) return n(a.finallyLoc)
                                }
                            }
                        }
                    }, abrupt: function (t, e) {
                        for (var r = this.tryEntries.length - 1; r >= 0; --r) {
                            var n = this.tryEntries[r];
                            if (n.tryLoc <= this.prev && o.call(n, "finallyLoc") && this.prev < n.finallyLoc) {
                                var i = n;
                                break
                            }
                        }
                        i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
                        var a = i ? i.completion : {};
                        return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, p) : this.complete(a)
                    }, complete: function (t, e) {
                        if ("throw" === t.type) throw t.arg;
                        return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), p
                    }, finish: function (t) {
                        for (var e = this.tryEntries.length - 1; e >= 0; --e) {
                            var r = this.tryEntries[e];
                            if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), C(r), p
                        }
                    }, catch: function (t) {
                        for (var e = this.tryEntries.length - 1; e >= 0; --e) {
                            var r = this.tryEntries[e];
                            if (r.tryLoc === t) {
                                var n = r.completion;
                                if ("throw" === n.type) {
                                    var o = n.arg;
                                    C(r)
                                }
                                return o
                            }
                        }
                        throw new Error("illegal catch attempt")
                    }, delegateYield: function (t, e, n) {
                        return this.delegate = {
                            iterator: R(t),
                            resultName: e,
                            nextLoc: n
                        }, "next" === this.method && (this.arg = r), p
                    }
                }
            }

            function b(t, e, r, n) {
                var o = e && e.prototype instanceof x ? e : x, i = Object.create(o.prototype), a = new A(n || []);
                return i._invoke = D(t, r, a), i
            }

            function S(t, e, r) {
                try {
                    return {type: "normal", arg: t.call(e, r)}
                } catch (n) {
                    return {type: "throw", arg: n}
                }
            }

            function x() {
            }

            function P() {
            }

            function I() {
            }

            function L(t) {
                ["next", "throw", "return"].forEach((function (e) {
                    t[e] = function (t) {
                        return this._invoke(e, t)
                    }
                }))
            }

            function F(t) {
                function e(r, n, i, a) {
                    var c = S(t[r], t, n);
                    if ("throw" !== c.type) {
                        var s = c.arg, u = s.value;
                        return u && "object" === typeof u && o.call(u, "__await") ? Promise.resolve(u.__await).then((function (t) {
                            e("next", t, i, a)
                        }), (function (t) {
                            e("throw", t, i, a)
                        })) : Promise.resolve(u).then((function (t) {
                            s.value = t, i(s)
                        }), (function (t) {
                            return e("throw", t, i, a)
                        }))
                    }
                    a(c.arg)
                }

                var r;

                function n(t, n) {
                    function o() {
                        return new Promise((function (r, o) {
                            e(t, n, r, o)
                        }))
                    }

                    return r = r ? r.then(o, o) : o()
                }

                this._invoke = n
            }

            function D(t, e, r) {
                var n = f;
                return function (o, i) {
                    if (n === d) throw new Error("Generator is already running");
                    if (n === g) {
                        if ("throw" === o) throw i;
                        return E()
                    }
                    r.method = o, r.arg = i;
                    while (1) {
                        var a = r.delegate;
                        if (a) {
                            var c = T(a, r);
                            if (c) {
                                if (c === p) continue;
                                return c
                            }
                        }
                        if ("next" === r.method) r.sent = r._sent = r.arg; else if ("throw" === r.method) {
                            if (n === f) throw n = g, r.arg;
                            r.dispatchException(r.arg)
                        } else "return" === r.method && r.abrupt("return", r.arg);
                        n = d;
                        var s = S(t, e, r);
                        if ("normal" === s.type) {
                            if (n = r.done ? g : h, s.arg === p) continue;
                            return {value: s.arg, done: r.done}
                        }
                        "throw" === s.type && (n = g, r.method = "throw", r.arg = s.arg)
                    }
                }
            }

            function T(t, e) {
                var n = t.iterator[e.method];
                if (n === r) {
                    if (e.delegate = null, "throw" === e.method) {
                        if (t.iterator.return && (e.method = "return", e.arg = r, T(t, e), "throw" === e.method)) return p;
                        e.method = "throw", e.arg = new TypeError("The iterator does not provide a 'throw' method")
                    }
                    return p
                }
                var o = S(n, t.iterator, e.arg);
                if ("throw" === o.type) return e.method = "throw", e.arg = o.arg, e.delegate = null, p;
                var i = o.arg;
                return i ? i.done ? (e[t.resultName] = i.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = r), e.delegate = null, p) : i : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, p)
            }

            function U(t) {
                var e = {tryLoc: t[0]};
                1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e)
            }

            function C(t) {
                var e = t.completion || {};
                e.type = "normal", delete e.arg, t.completion = e
            }

            function A(t) {
                this.tryEntries = [{tryLoc: "root"}], t.forEach(U, this), this.reset(!0)
            }

            function R(t) {
                if (t) {
                    var e = t[a];
                    if (e) return e.call(t);
                    if ("function" === typeof t.next) return t;
                    if (!isNaN(t.length)) {
                        var n = -1, i = function e() {
                            while (++n < t.length) if (o.call(t, n)) return e.value = t[n], e.done = !1, e;
                            return e.value = r, e.done = !0, e
                        };
                        return i.next = i
                    }
                }
                return {next: E}
            }

            function E() {
                return {value: r, done: !0}
            }
        }(function () {
            return this || "object" === typeof self && self
        }() || Function("return this")())
    }
}]);